package org.rslai.autotest.core.page;

/**
 * Window处理方法接口<br>
 * 提供切换到指定窗体、返回前一个窗体、关闭指定窗体等方法
 * @author rslai
 */
public interface Window {
	/**
	 * 切换到指定窗体<br>
	 * 例如：switchToWindow("Gg.do"); 切换窗体url中包含Gg.do的窗体
	 * @param titleOrUrl 窗体title或url（支持部分匹配）
	 * @return 切换成功返回true，没切换成功引发NoSuchWindowException异常
	 */
	public boolean switchToWindow(String titleOrUrl);

	/**
	 * 切换到指定窗体 <br>
	 * 例如：switchToWindow("Gg.do", 30); 切换窗体url中包含Gg.do的窗体
	 * @param titleOrUrl 窗体title或url（支持部分匹配）
	 * @param waitTimeout 超时时间 (秒)
	 * @return 切换成功返回true，没切换成功引发NoSuchWindowException异常
	 */
	public boolean switchToWindow(String titleOrUrl, int waitTimeout);

	/**
	 * 关闭指定窗体 <br>
	 * 例如：closeWindow("Gg.do"); 关闭窗体url中包含Gg.do的窗体
	 * @param titleOrUrl 窗体title或url（支持部分匹配）
	 * @return 关闭窗口返回true，没关闭任何窗体引发NoSuchWindowException异常
	 */
	public boolean closeWindow(String titleOrUrl);

	/**
	 * 关闭指定窗体<br>
	 * 例如：closeWindow("Gg.do", 30); 关闭窗体url中包含Gg.do的窗体
	 * @param titleOrUrl 窗体title或url（支持部分匹配）
	 * @param waitTimeout 超时时间 (秒)
	 * @return 关闭窗口返回true，没等到报TimeoutException异常
	 */
	public boolean closeWindow(String titleOrUrl, int waitTimeout);

}
